{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "75417ef5",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from pandas import Series, DataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "97fca3e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>maxtemp</th>\n",
       "      <th>mintemp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date_time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-12-11 00:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 03:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 06:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 09:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 12:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     maxtemp  mintemp\n",
       "date_time                            \n",
       "2018-12-11 00:00:00        1       -2\n",
       "2018-12-11 03:00:00        1       -2\n",
       "2018-12-11 06:00:00        1       -2\n",
       "2018-12-11 09:00:00        1       -2\n",
       "2018-12-11 12:00:00        1       -2"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load the weather data for Chicago.  We only care about three columns: date_time,\n",
    "# min temp, and max temp.  Make date_time the index, and set the names of the min\n",
    "# and max temp columns to \"mintemp\" and \"maxtemp\"\n",
    "\n",
    "filename = '../data/chicago,il.csv'\n",
    "\n",
    "df = pd.read_csv(filename, \n",
    "                 usecols=[0, 1,2],\n",
    "                 header=0,\n",
    "                 names=['date_time','maxtemp', 'mintemp'],\n",
    "                 parse_dates=['date_time'],\n",
    "                 index_col=['date_time'])\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d1dbaac0",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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qHR2dsa1114b06ZNi69//evH7O/q6oqrr746mpqa4umnn46dO3fGJz/5yRg4cGAsXbq0XGMBAH1I2a6o3HnnnXHrrbfGxRdffNz9jz32WPzP//xPfPOb34xJkybFe97znrj77rtj1apV0dnZWa6xAIA+JLN7VDZs2BAXX3xxNDY2lrZdddVVkc/n43e/+11WYwEACcnsz5Pb29u7RUpElNbb29tP+LpCoRCFQqG0ns/nyzMgAJC5U7qismjRoqioqDjpsnHjxnLNGhERy5Yti9ra2tLS3Nxc1u8HAGTnlK6oLFiwIObMmXPSY8aNG9ejczU1NcVzzz3XbduuXbtK+05k8eLFMX/+/NJ6Pp8XKwBwhjqlUGloaIiGhoZe+cbTpk2Le+65J3bv3h0jR46MiIj169fH0KFD48ILLzzh63K5XORyuV6ZAQBIW9nuUdm6dWu88sorsXXr1ujq6orW1taIiGhpaYnq6uq48sor48ILL4zrrrsu7rvvvmhvb49/+qd/ihtvvFGIAAARUcZQuf3222Pt2rWl9cmTJ0dExOOPPx4zZ86M/v37x6OPPhqf/exnY9q0aTFkyJC4/vrr46677irXSABAH1O2UFmzZk2sWbPmpMeMHj06vv/975drBACgj/NZPwBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJKtsoXLPPffE9OnTo6qqKurq6o57TEVFxTHLI488Uq6RAIA+ZkC5TtzZ2RnXXnttTJs2Lb7+9a+f8LjVq1fH7NmzS+snihoA4OxTtlC58847IyJizZo1Jz2urq4umpqayjUGANCHZX6Pyo033hgjRoyIyy67LB566KEoFosnPb5QKEQ+n++2AABnprJdUemJu+66K/7mb/4mqqqq4rHHHou///u/jwMHDsTNN998wtcsW7asdLUGADizndIVlUWLFh33Btg3Lhs3buzx+f75n/85/uqv/iomT54c//AP/xCf//zn44tf/OJJX7N48eLo6OgoLdu2bTuVHwEA6ENO6YrKggULYs6cOSc9Zty4cW97mKlTp8bdd98dhUIhcrnccY/J5XIn3AcAnFlOKVQaGhqioaGhXLNEa2tr1NfXCxEAICLKeI/K1q1b45VXXomtW7dGV1dXtLa2RkRES0tLVFdXx3/+53/Grl274i//8i9j0KBBsX79+li6dGksXLiwXCMBAH1M2ULl9ttvj7Vr15bWJ0+eHBERjz/+eMycOTMGDhwYq1atiltvvTWKxWK0tLTEypUrY968eeUaCQDoY8oWKmvWrDnpM1Rmz57d7UFvAABvlvlzVAAATkSoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJKluobNmyJebOnRtjx46NwYMHx/jx42PJkiXR2dnZ7bjf/OY3cfnll8egQYOiubk57rvvvnKNBAD0MQPKdeKNGzfG0aNH4ytf+Uq0tLTE888/H/PmzYuDBw/GihUrIiIin8/HlVdeGVdccUV8+ctfjt/+9rfxqU99Kurq6uLv/u7vyjUaANBHlC1UZs+eHbNnzy6tjxs3Ll588cV48MEHS6Hy8MMPR2dnZzz00ENRWVkZEydOjNbW1li5cqVQAQDKFyrH09HREcOGDSutb9iwIf76r/86KisrS9uuuuqquPfee2Pv3r1RX19/zDkKhUIUCoXSej6fL+/QwCl5tbMrNu050Cvnatt9oNt/e8P4huoYXNm/184HlNdpC5W2trZ44IEHSldTIiLa29tj7Nix3Y5rbGws7TteqCxbtizuvPPO8g4LvG2b9hyI9z7w81495y3rWnvtXI/eNCMuekdtr50PKK9TDpVFixbFvffee9JjXnjhhTj//PNL69u3b4/Zs2fHtddeG/PmzTv1Kd9g8eLFMX/+/NJ6Pp+P5ubmP+ucQO8Z31Adj940o1fO9drhrnhp76sxqn5wDBrYO1dBxjdU98p5gNPjlENlwYIFMWfOnJMeM27cuNLXO3bsiFmzZsX06dPjq1/9arfjmpqaYteuXd22vb7e1NR03HPncrnI5XKnOjZwmgyu7N+rVywuHdNrpwL6oFMOlYaGhmhoaOjRsdu3b49Zs2bFlClTYvXq1dGvX/e/hp42bVr84z/+Yxw+fDgGDhwYERHr16+PCRMmHPdtHwDg7FK256hs3749Zs6cGeedd16sWLEi9uzZE+3t7dHe3l465mMf+1hUVlbG3Llz43e/+12sW7cu/uVf/qXbWzsAwNmrbDfTrl+/Ptra2qKtrS1GjRrVbV+xWIyIiNra2njsscfixhtvjClTpsSIESPi9ttv96fJAEBERFQUX6+GPiqfz0dtbW10dHTE0KFDsx4HAOiBnv7+9lk/AECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gAAMkSKgBAsoQKAJAsoQIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkq2yhsmXLlpg7d26MHTs2Bg8eHOPHj48lS5ZEZ2dnt2MqKiqOWZ555plyjQUA9CEDynXijRs3xtGjR+MrX/lKtLS0xPPPPx/z5s2LgwcPxooVK7od++Mf/zgmTpxYWh8+fHi5xgIA+pCyhcrs2bNj9uzZpfVx48bFiy++GA8++OAxoTJ8+PBoamoq1ygAQB91Wu9R6ejoiGHDhh2z/X3ve1+MHDkyZsyYEd/73vdOeo5CoRD5fL7bAgCcmU5bqLS1tcUDDzwQn/70p0vbqqur4/77749vf/vb8V//9V8xY8aMeP/733/SWFm2bFnU1taWlubm5tMxPgCQgYpisVg8lRcsWrQo7r333pMe88ILL8T5559fWt++fXu8+93vjpkzZ8a//uu/nvS1n/zkJ2Pz5s3x1FNPHXd/oVCIQqFQWs/n89Hc3BwdHR0xdOjQU/hJAICs5PP5qK2tfcvf36d8j8qCBQtizpw5Jz1m3Lhxpa937NgRs2bNiunTp8dXv/rVtzz/1KlTY/369Sfcn8vlIpfL9XheAKDvOuVQaWhoiIaGhh4du3379pg1a1ZMmTIlVq9eHf36vfU7Ta2trXHOOeec6lgAwBmobH/1s3379pg5c2aMHj06VqxYEXv27Cnte/0vfNauXRuVlZUxefLkiIj4zne+Ew899NBbvj0EAJwdyhYq69evj7a2tmhra4tRo0Z12/fG22Luvvvu+MMf/hADBgyI888/P9atWxcf+tCHyjUWANCHnPLNtKnp6c04AEA6evr722f9AADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAkS6gASWpvb4+mpqYYNGhQNDU1RXt7e9YjARko2yP0Ad6uIUOGxKFDh0rru3btinPOOSeqqqri4MGDGU4GnG6uqABJeWOkjB07Nr797W/H2LFjIyLi0KFDMWTIkCzHA04zV1SAZLS3t5ciZe/evVFXVxcRER/60Idi3759UV9fH4cOHSq9LQSc+VxRAZIxadKkiPjTlZTXI+V1dXV1MXr06G7HAWc+oQIkY9++fRERcd999x13/9KlS7sdB5z5hAqQjNevonz+858/7v4vfOEL3Y4DznxCBUhGa2trRERs3rz5mKsm+/btiz/84Q/djgPOfEIFSEZTU1NUVVVFRER9fX2MGTMm/u3f/i3GjBkT9fX1ERFRVVXlRlo4i1QUi8Vi1kP8OfL5fNTW1kZHR0cMHTo063GAXvDm56i8znNU4MzR09/frqgAAMkSKkBSPPANeCMPfAOS4YFvwJu5ogIkwwPfgDcTKkAyPPANeDOhAiTDA9+ANxMqQDI88A14M6ECJMMD34A388A3IDke+AZnPg98A/qsgwcPxs6dO6OxsTFyuVw0NjbGzp07RQqchTxHBUhSU1NTtLe3Zz0GkDFXVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBk9fkn077+UUX5fD7jSQCAnnr99/ZbfeRgnw+V/fv3R0REc3NzxpMAAKdq//79UVtbe8L9ff7Tk48ePRo7duyImpqaqKioyHocoBfl8/lobm6Obdu2+XR0OMMUi8XYv39/nHvuudGv34nvROnzoQKcuXr6MfDAmcvNtABAsoQKAJAsoQIkK5fLxZIlSyKXy2U9CpAR96gAAMlyRQUASJZQAQCSJVQAgGQJFaAsnnjiiaioqIh9+/ZlPQrQh7mZFiiLzs7OeOWVV6KxsbHHT42eM2dO7Nu3L/793/+9vMMBfUaf/6wfIE2VlZXR1NSU9RhAH+etH6BHZs6cGTfddFPccsstUV9fH42NjfG1r30tDh48GDfccEPU1NRES0tL/OAHP4iIY9/6WbNmTdTV1cWPfvSjuOCCC6K6ujpmz54dO3fujIiIO+64I9auXRv/8R//ERUVFVFRURFPPPFERERs27YtPvzhD0ddXV0MGzYsrrnmmtiyZUtptjlz5sT73//+WLp0aTQ2NkZdXV3cddddceTIkbjtttti2LBhMWrUqFi9enXpNVu2bImKiop45JFHYvr06TFo0KC46KKL4mc/+9lp+fcEekaoAD22du3aGDFiRDz33HNx0003xWc/+9m49tprY/r06fGrX/0qrrzyyrjuuuvi0KFDx339oUOHYsWKFfGNb3wjnnzyydi6dWssXLgwIiIWLlwYH/7wh0vxsnPnzpg+fXocPnw4rrrqqqipqYmnnnoqfvGLX5Qip7Ozs3Tun/70p7Fjx4548sknY+XKlbFkyZJ473vfG/X19fHss8/GZz7zmfj0pz8dL730UreZbrvttliwYEH8+te/jmnTpsXf/u3fxh//+Mfy/SMCp6YI0APvfve7izNmzCitHzlypDhkyJDiddddV9q2c+fOYkQUN2zYUHz88ceLEVHcu3dvsVgsFlevXl2MiGJbW1vp+FWrVhUbGxtL69dff33xmmuu6fZ9v/GNbxQnTJhQPHr0aGlboVAoDh48uPijH/2o9LrRo0cXu7q6SsdMmDChePnllx8z77e+9a1isVgsbt68uRgRxeXLl5eOOXz4cHHUqFHFe++99+38EwFl4B4VoMfe+c53lr7u379/DB8+PC6++OLStsbGxoiI2L1793E/7biqqirGjx9fWj/nnHNi9+7dJ/2e//3f/x1tbW1RU1PTbftrr70WmzZtKq1PnDix20fFNzY2xkUXXXTMvG/+ftOmTSt9PWDAgLj00kvjhRdeOOlMwOkjVIAeGzhwYLf1ioqKbtte/+ueo0eP9vj1xbf4w8MDBw7ElClT4uGHHz5mX0NDQ49ne33biWYD0uQeFSAZlZWV0dXV1W3bJZdcEr///e9j5MiR0dLS0m2pra39s7/nM888U/r6yJEj8ctf/jIuuOCCP/u8QO8QKkAyxowZE7/5zW/ixRdfjJdffjkOHz4cH//4x2PEiBFxzTXXxFNPPRWbN2+OJ554Im6++eZjbox9O1atWhXf/e53Y+PGjXHjjTfG3r1741Of+lQv/DRAbxAqQDLmzZsXEyZMiEsvvTQaGhriF7/4RVRVVcWTTz4Z5513Xnzwgx+MCy64IObOnRuvvfbace+DOVXLly+P5cuXx7ve9a74+c9/Ht/73vdixIgRvfDTAL3Bk2mBs9KWLVti7Nix8etf/zomTZqU9TjACbiiAgAkS6gAAMny1g8AkCxXVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBk/V8mYxiqZBNptgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create a boxplot of Chicago's minimum temperatures during this period.\n",
    "p = df['mintemp'].plot.box()\n",
    "f = p.get_figure()\n",
    "f.savefig('../../media/CH10_F7_LERNER.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b09b91d0",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date_time\n",
       "2019-01-25 00:00:00   -20\n",
       "2019-01-25 03:00:00   -20\n",
       "2019-01-25 06:00:00   -20\n",
       "2019-01-25 09:00:00   -20\n",
       "2019-01-25 12:00:00   -20\n",
       "2019-01-25 15:00:00   -20\n",
       "2019-01-25 18:00:00   -20\n",
       "2019-01-25 21:00:00   -20\n",
       "2019-01-26 00:00:00   -19\n",
       "2019-01-26 03:00:00   -19\n",
       "2019-01-26 06:00:00   -19\n",
       "2019-01-26 09:00:00   -19\n",
       "2019-01-26 12:00:00   -19\n",
       "2019-01-26 15:00:00   -19\n",
       "2019-01-26 18:00:00   -19\n",
       "2019-01-26 21:00:00   -19\n",
       "2019-01-30 00:00:00   -28\n",
       "2019-01-30 03:00:00   -28\n",
       "2019-01-30 06:00:00   -28\n",
       "2019-01-30 09:00:00   -28\n",
       "2019-01-30 12:00:00   -28\n",
       "2019-01-30 15:00:00   -28\n",
       "2019-01-30 18:00:00   -28\n",
       "2019-01-30 21:00:00   -28\n",
       "2019-01-31 00:00:00   -27\n",
       "2019-01-31 03:00:00   -27\n",
       "2019-01-31 06:00:00   -27\n",
       "2019-01-31 09:00:00   -27\n",
       "2019-01-31 12:00:00   -27\n",
       "2019-01-31 15:00:00   -27\n",
       "2019-01-31 18:00:00   -27\n",
       "2019-01-31 21:00:00   -27\n",
       "Name: mintemp, dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Find the values that are represented as dots on that boxplot\n",
    "\n",
    "iqr = df['mintemp'].quantile(0.75) - df['mintemp'].quantile(0.25)\n",
    "\n",
    "(\n",
    "    df.loc[\n",
    "        df['mintemp'] < df['mintemp'].mean() - (iqr * 1.5),\n",
    "        'mintemp'\n",
    "        ]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "1a9da221",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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afHuc7vdnh49enjefvtt73EDBgzwNDc3e9cMGTLE881vfvOaeX/zm994PB6P5+TJkx5JnnXr1nnXNDY2evr37+/56U9/eiP/RAA6CffgAOhUw4cP937drVs39erVS8OGDfPuS0hIkCSdO3eu1b/+HRERocGDB3sf9+nTR+fOnWv3NT/44ANVVFQoKirKZ//Vq1dVWVnpfXzbbbcpJOTfF7ITEhKUnp5+zbxffL3MzEzv16GhoRo9erQ++uijdmcC0LUIHACdqnv37j6PbTabz77Pf1qqpaXluo/3fMkPf9bX12vUqFHavn37Nc85HI7rnu3zfW3NBiBwcQ8OgKAWFham5uZmn30jR47UP/7xD8XHxyslJcVni4mJ+cqveeTIEe/XTU1NKi0tVVpa2lc+LwD/IXAABLWBAwfqww8/VHl5uT7++GM1NjZq+vTp6t27tyZNmqQ///nPOnnypA4cOKCFCxdec8Pwjdi8ebNee+01nThxQvPmzdPFixf1ox/9yA/vBoC/EDgAglpeXp6GDBmi0aNHy+Fw6N1331VERIQOHTqkW2+9Vd/73veUlpamWbNm6erVq63e59NR69at07p16/SNb3xDhw8f1ptvvqnevXv74d0A8Bd+kzEAXKeqqioNGjRI77//vm6//XarxwHQDq7gAAAA4xA4AADAOHxEBQAAjMMVHAAAYBwCBwAAGIfAAQAAxiFwAACAcQgcAABgHAIHAAAYh8ABAADGIXAAAIBxCBwAAGCc/wdkQQzzuCr/LgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create a boxplot of Chicago's minimum temperatures in February.\n",
    "p = (\n",
    "    df\n",
    "    .loc['01-Feb-2019':'28-Feb-2019', \n",
    "    'mintemp']\n",
    "    .plot.box()\n",
    ")\n",
    "\n",
    "f = p.get_figure()\n",
    "f.savefig('../../media/CH10_F8_LERNER.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "18406db7",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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O/h+vscAoAVOpgUAkiVUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWUIFAEiWUAEAkiVUAIBkCRUAIFlCBQBIllABAJIlVACAZAkVACBZQgUASJZQAQCSJVQAgGQJFQAgWe0WKo899liMGTMmiouLo7y8/Kj7bNmyJa655pooLi6Ofv36xX333RcHDx5sr5EAgA6mc3st3NjYGDfccEOMHj06nn766SNub2pqimuuuSaqqqritddei23btsUtt9wSXbp0iccff7y9xgIAOpB2O6LyyCOPxL333hsXXXTRUW9//vnn45133olvfvObMWLEiLj66qtj7ty5sXjx4mhsbGyvsQCADqTdjqh8kNWrV8dFF10UlZWVuW0TJkyIu+66K372s5/FyJEjj3q/hoaGaGhoyF2vq6tr91lpnX0HmiIi4j9/WdvqtfYfaIqtu/bFgF7do1uXwlattaGmvtXzANC+8hYq27dvbxYpEZG7vn379mPeb968efHII4+062y0rY3/FwT3f/uneZ7k6HoU5e1pAMAHOKGf0Pfff3985StfaXGfn//85/GRj3ykVUO1ZM6cOTFz5szc9bq6uhg4cGC7PR6td9UFVRERMaRfSXRvg6MgM1asjUWTRsTQfiWtnq1HUecY3LdHq9cBoH2cUKjMmjUrbr311hb3Oeecc45rraqqqnjzzTebbduxY0futmMpKiqKoqKi43oM0tC7R9f4zOVntemaQ/uVxIVnlrXpmgCk54RCpaKiIioqKtrkgUePHh2PPfZY1NTURL9+/SIi4oc//GH07Nkzzj///DZ5DACgY2u3F+e3bNkSv/71r2PLli3R1NQUa9eujYiIoUOHRklJSVx11VVx/vnnx2c/+9lYsGBBbN++Pf7iL/4ipk2b5ogJABAR7RgqDz74YCxbtix3/fBv8bz44osxbty4KCwsjJUrV8Zdd90Vo0ePjh49esSUKVPi0Ucfba+RAIAOpt1CZenSpbF06dIW9zn77LPj+9//fnuNAAB0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Kioqjnu2w9uONRucrk7keb18+fKYPXt2PPHEEzF69OgoLS2NhQsXxhtvvNFsjZqamli/fn0UFhbGL37xi5g4cWKLM9TX10dhYWGsWbMmCgsLm9322xHieX7qEyokrWvXrs1OgouIuPTSS2PFihXRr1+/ox6laa3XX389fu/3fi8iIg4ePBhr1qyJu+++u80fB04Fr776aowZMya++MUv5rb99pHNw26//fa46KKL4o477oipU6fG+PHjY/jw4RFx9Of5yJEjo6mpKWpqauKKK65o87lff/31I64fnoe0+K0fkjZo0KD4yU9+Eu+++27s3LkzDhw4EJMnT46+ffvGtddeG//+7/8emzZtilWrVsX06dNj69atrX7MxYsXx3e+851Yt25dTJs2LXbt2hW33357G3w1cOo599xz4+23347nnnsu1q9fHw888EC89dZbzfZZvHhxrF69OpYtWxaTJ0+O6667LiZPnhyNjY0R8b/P8/r6+njhhRdi586d8Zvf/CbOO++8mDx5ctxyyy3x7W9/OzZt2hRvvvlmzJs3L/71X/+11XO/+uqrsWDBgli/fn0sXrw4/vEf/zH+9E//tNXr0vaECkmbOnVqDBs2LC677LKoqKiIV199NYqLi+Pll1+Os846K66//voYPnx43HHHHbF///42OcIyf/78mD9/flxyySXxyiuvxL/8y79E37592+CrgVPPnXfeGddff31MmjQpRo0aFb/61a+aHV1Zt25d3HffffG1r30tBg4cGBERX/va12Lnzp3xwAMPRMT/vhnkF77whZg0aVJUVFTEggULIiJiyZIlccstt8SsWbNi2LBhcd1118Vbb70VZ511VqvnnjVrVrz99tsxcuTI+PKXvxxPPvlkTJgwodXr0vYKsg86IQBOE5s3b47BgwfHj3/84yNOBAROHYMGDYoZM2bEjBkz8j0Kx8ERFQAgWUIFAEiWl34AgGQ5ogIAJEuoAADJEioAQLKECgCQLKECACRLqAAAyRIqAECyhAoAkCyhAgAk638A7lxxkcA6ea8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create a side-by-side boxplot of Chicago's minimum and temperatures in February and March\n",
    "p = (\n",
    "    df\n",
    "    .loc['01-Feb-2019':'30-Mar-2019', \n",
    "        ['mintemp','maxtemp']]\n",
    "    .plot.box()\n",
    ")\n",
    "\n",
    "f = p.get_figure()\n",
    "f.savefig('../../media/CH10_F9_LERNER.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a927abb8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>maxtemp</th>\n",
       "      <th>mintemp</th>\n",
       "      <th>city</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date_time</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-12-11 00:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "      <td>Chicago</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 03:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "      <td>Chicago</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 06:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "      <td>Chicago</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 09:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "      <td>Chicago</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-11 12:00:00</th>\n",
       "      <td>1</td>\n",
       "      <td>-2</td>\n",
       "      <td>Chicago</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     maxtemp  mintemp     city\n",
       "date_time                                     \n",
       "2018-12-11 00:00:00        1       -2  Chicago\n",
       "2018-12-11 03:00:00        1       -2  Chicago\n",
       "2018-12-11 06:00:00        1       -2  Chicago\n",
       "2018-12-11 09:00:00        1       -2  Chicago\n",
       "2018-12-11 12:00:00        1       -2  Chicago"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now read data from Los Angeles and Boston in, as well.  Create a single data\n",
    "# frame with data from all three cities, along with a \"city\" \n",
    "\n",
    "df['city'] = 'Chicago'\n",
    "\n",
    "for city_stem in ['los+angeles,ca', 'boston,ma']:\n",
    "    new_df = pd.read_csv(f'../data/{city_stem}.csv', \n",
    "                 usecols=[0, 1,2],\n",
    "                 header=0,\n",
    "                 names=['date_time','maxtemp', 'mintemp'],\n",
    "                parse_dates=['date_time'],\n",
    "                index_col=['date_time'])\n",
    "    new_df['city'] = city_stem.split(',')[0].replace('+', ' ').title()\n",
    "    df = pd.concat([df, new_df])\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "60614998",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">mintemp</th>\n",
       "      <th colspan=\"8\" halign=\"left\">maxtemp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>city</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Boston</th>\n",
       "      <td>728.0</td>\n",
       "      <td>-3.142857</td>\n",
       "      <td>4.957195</td>\n",
       "      <td>-14.0</td>\n",
       "      <td>-6.0</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>728.0</td>\n",
       "      <td>2.868132</td>\n",
       "      <td>4.945277</td>\n",
       "      <td>-12.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>17.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chicago</th>\n",
       "      <td>728.0</td>\n",
       "      <td>-5.076923</td>\n",
       "      <td>6.255857</td>\n",
       "      <td>-28.0</td>\n",
       "      <td>-9.0</td>\n",
       "      <td>-4.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>728.0</td>\n",
       "      <td>-0.736264</td>\n",
       "      <td>6.128985</td>\n",
       "      <td>-25.0</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Los Angeles</th>\n",
       "      <td>728.0</td>\n",
       "      <td>10.637363</td>\n",
       "      <td>2.705200</td>\n",
       "      <td>4.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>728.0</td>\n",
       "      <td>17.054945</td>\n",
       "      <td>2.708640</td>\n",
       "      <td>12.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            mintemp                                                   maxtemp  \\\n",
       "              count       mean       std   min  25%   50%   75%   max   count   \n",
       "city                                                                            \n",
       "Boston        728.0  -3.142857  4.957195 -14.0 -6.0  -3.0   0.0   9.0   728.0   \n",
       "Chicago       728.0  -5.076923  6.255857 -28.0 -9.0  -4.0  -1.0   6.0   728.0   \n",
       "Los Angeles   728.0  10.637363  2.705200   4.0  9.0  11.0  12.0  17.0   728.0   \n",
       "\n",
       "                                                                \n",
       "                  mean       std   min   25%   50%   75%   max  \n",
       "city                                                            \n",
       "Boston        2.868132  4.945277 -12.0   0.0   2.0   6.0  17.0  \n",
       "Chicago      -0.736264  6.128985 -25.0  -3.0   0.0   3.0   9.0  \n",
       "Los Angeles  17.054945  2.708640  12.0  15.0  16.0  19.0  23.0  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get descriptive statistics for mintemp and maxtemp, grouped by city\n",
    "df.groupby('city')[['mintemp', 'maxtemp']].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "1e7fe6cf",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGzCAYAAAAIWpzfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCyUlEQVR4nO3de3hU1aH38V8IyeRGbhIyEUISLnIRML5BOAFUKNTA640q1AqVoBRaRFpFRaDKRSscURGLiNVWwCpPESvaoqVwEGxVBKVGFAISjAEhE265kAQSSNb7h2/2YciFBDKZ2cn38zx5YO+99p41Q7L4Ze211vYzxhgBAADYQCtvVwAAAKC+CC4AAMA2CC4AAMA2CC4AAMA2CC4AAMA2CC4AAMA2CC4AAMA2CC4AAMA2CC4AAMA2CC4AAI/77rvv5OfnpxUrVni7KrA5ggu84vDhw5o7d64yMjK8XRUAPq60tFRz587Vli1bvF0V+IDW3q4AWqbDhw9r3rx5SkxMVHJysrerA8DDEhISdOrUKQUEBDT43NLSUs2bN0+SNHjw4EauGeyG4AIA8Dg/Pz8FBQV5uxpoBrhV1ILMnTtXfn5++uabb/Tzn/9cERERiomJ0WOPPSZjjA4ePKhbb71V4eHhcjqdevbZZ61zy8vLNXv2bKWkpCgiIkKhoaG69tprtXnzZrfXmDNnjlq1aqVNmza57Z80aZICAwP15ZdfasuWLbrmmmskSXfffbf8/Pyq3fvetm2bhg8froiICIWEhOj666/Xxx9/3GjvR5K2bNkiPz8/rV69WrNmzZLT6VRoaKhuueUWHTx4sDE+cqBZuZSfuZrGuIwfP15hYWE6dOiQRo4cqbCwMMXExOihhx5SRUWFdV5MTIwkad68eVZ7MXfuXOs6e/bs0ahRoxQdHa2goCD17dtXf/vb39zqvmLFCvn5+emjjz7Sr3/9a8XExCgyMlK//OUvVV5eroKCAo0bN05RUVGKiorS9OnTZYypVv9nnnlGzz33nBISEhQcHKzrr79eX3/9tQc+bdTKoMWYM2eOkWSSk5PNnXfeaV588UVz4403Gklm0aJFplu3bmby5MnmxRdfNAMHDjSSzIcffmiMMebo0aMmLi7OTJs2zSxbtswsXLjQdOvWzQQEBJgvvvjCeo3y8nJz9dVXm4SEBFNUVGSMMWb9+vVGknniiSeMMca4XC7z+OOPG0lm0qRJ5s9//rP585//bPbv32+MMWbTpk0mMDDQpKammmeffdY899xzpk+fPiYwMNBs27atUd6PMcZs3rzZSDK9e/c2ffr0MYsWLTIzZswwQUFB5oorrjClpaWe/icBbOVSfuays7ONJLN8+XLreunp6SYoKMhceeWV5p577jHLli0zt99+u5FkXnzxRWOMMcXFxWbZsmVGkvnJT35itRdffvmlMcaYr7/+2kRERJiePXuap556yrzwwgvmuuuuM35+fubtt9+2Xmv58uVW3YcPH26WLl1q7rrrLiPJTJ8+3QwaNMiMGTPGvPjii+amm24ykszKlSut86vq37t3b5OYmGieeuopM2/ePBMdHW1iYmKMy+Vqgn8BGGMMwaUFqWp0Jk2aZO07e/as6dChg/Hz8zP//d//be3Pz883wcHBJj093SpXVlbmdr38/HwTGxtr7rnnHrf9X331lQkMDDS/+MUvTH5+vmnfvr3p27evOXPmjFXms88+q9aIGWNMZWWl6dq1q0lLSzOVlZXW/tLSUpOUlGR+/OMfN8r7MeZ/g0v79u2tkGWMMW+++aaRZJ5//vm6Pk6gxbmUn7nagosk8/jjj7u9ztVXX21SUlKs7aNHjxpJZs6cOdXqNHToUNO7d29z+vRpa19lZaUZMGCA6dq1q7WvKric37akpqYaPz8/86tf/arae7r++uutfVX1Dw4ONt9//721f9u2bUaSeeCBB+r45NCYuFXUAv3iF7+w/u7v76++ffvKGKMJEyZY+yMjI9WtWzd9++23VrnAwEBJUmVlpU6cOKGzZ8+qb9+++s9//uN2/V69emnevHn64x//qLS0NB07dkwrV65U69YXHlKVkZGhffv2acyYMTp+/LiOHTumY8eOqaSkREOHDtW//vUvVVZWXvL7Ode4cePUpk0ba3vUqFGKi4vT+++/f8H6Ai3Rpf7Mne9Xv/qV2/a1115br/NOnDihDz74QD/96U918uRJq704fvy40tLStG/fPh06dMjtnAkTJsjPz8/a7t+/f7W6V72nmuowcuRItW/f3tru16+f+vfvT3vRhBic2wJ17NjRbTsiIkJBQUFq27Zttf3Hjx+3tleuXKlnn31We/bs0ZkzZ6z9SUlJ1V7j4Ycf1l/+8hdt375d8+fPV8+ePetVt3379kmS0tPTay1TWFioqKioS34/Vbp27eq27efnpy5duui7776rV52BluZSf+bOFRQUZI1hqRIVFaX8/PwL1iMrK0vGGD322GN67LHHaixz5MgRt6BRU90lKT4+vtr+mupwfnshSVdccYXefPPNC9YXjYPg0gL5+/vXa58ka3Da66+/rvHjx2vkyJF6+OGH1a5dO/n7+2vBggXav39/tfO+/fZbK4R89dVX9a5bVW/K008/Xes06bCwsEt+PwAuXmP+zNV2Xn1UtRcPPfSQ0tLSaizTpUuXer1eTftpL3wTwQX18tZbb6lTp056++233bpZ58yZU61sZWWlxo8fr/DwcN1///2aP3++Ro0apdtuu80qc+41ztW5c2dJUnh4uIYNG9bI76JmVQGrijFGWVlZ6tOnT5O8PoC61dZedOrUSZIUEBDgtfZCkr755hslJiY2yeuD6dCop6rfRs79DWTbtm3aunVrtbKLFi3SJ598opdffllPPPGEBgwYoMmTJ+vYsWNWmdDQUElSQUGB27kpKSnq3LmznnnmGRUXF1e79tGjRxvj7bh57bXXdPLkSWv7rbfeUm5urkaMGNHorwWg4UJCQiRVby/atWunwYMH6w9/+INyc3OrneeJ9uKdd95xGzezfft2bdu2jfaiCdHjgnq56aab9Pbbb+snP/mJbrzxRmVnZ+ull15Sz5493QJGZmamHnvsMY0fP14333yzpB/WT0hOTta9995r3Qfu3LmzIiMj9dJLL6lNmzYKDQ1V//79lZSUpD/+8Y8aMWKErrzySt19991q3769Dh06pM2bNys8PFx///vfG/W9RUdHa9CgQbr77ruVl5enxYsXq0uXLpo4cWKjvg6AixMcHKyePXtq9erVuuKKKxQdHa1evXqpV69eWrp0qQYNGqTevXtr4sSJ6tSpk/Ly8rR161Z9//33+vLLLxu1Ll26dNGgQYM0efJklZWVafHixbrssss0ffr0Rn0d1I7ggnoZP368XC6X/vCHP+if//ynevbsqddff11r1qyxnh9SUVGh9PR0tW3bVosXL7bO7dq1qxYsWKDf/OY3evPNN/XTn/5UAQEBWrlypWbOnKlf/epXOnv2rJYvX66kpCQNHjxYW7du1RNPPKEXXnhBxcXFcjqd6t+/v375y182+nubNWuWdu7cqQULFujkyZMaOnSoXnzxReu3PADe98c//lFTp07V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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create a boxplot showing the minimum and maximum temperatures for each of the three cities in df\n",
    "p, ax = (\n",
    "    df\n",
    "    .plot.box(column=['mintemp', 'maxtemp'], \n",
    "              by='city')\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "fbf0efb1",
   "metadata": {},
   "outputs": [],
   "source": [
    "f = ax.get_figure()\n",
    "f.savefig('../../media/CH10_F10_LERNER.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "ab812fc9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count     5.00000\n",
       "mean     17.40000\n",
       "std       5.59464\n",
       "min      10.00000\n",
       "25%      15.00000\n",
       "50%      17.00000\n",
       "75%      20.00000\n",
       "max      25.00000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s = Series([10, 15, 17, 20, 25])\n",
    "s.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "62b36eef",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = s.plot.box()\n",
    "f = p.get_figure()\n",
    "f.savefig('../../media/CH10_F5_LERNER.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a9980517",
   "metadata": {},
   "outputs": [],
   "source": [
    "s = Series([-20, 10, 15, 17, 20, 25, 40])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "d26fe495",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count     7.000000\n",
       "mean     15.285714\n",
       "std      18.273061\n",
       "min     -20.000000\n",
       "25%      12.500000\n",
       "50%      17.000000\n",
       "75%      22.500000\n",
       "max      40.000000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "30e90bb2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGKCAYAAACsHiO8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAYzElEQVR4nO3df2xV9f348VelcGmgva7OUjpaJbipDIfJPsyphJV9Cdo5FHWZ++VwuhiTgsHu67Tb3DSb326LTvajk/2x0Bi/RLM4EFnCxgRhZuICrNmXxKCQTpkE2OLspVW6au/3j329309nQW+5vPvDxyM5Meec9zl9+Yf2mXMP3LJ8Pp8PAIBEThvpAQCA9xbxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASZWP9AD/aWBgIA4ePBiVlZVRVlY20uMAAO9CPp+Po0ePRl1dXZx22omfbYy6+Dh48GDU19eP9BgAwDAcOHAgZsyYccI1oy4+KisrI+Lfw1dVVY3wNADAu5HL5aK+vr7we/xERl18vPVRS1VVlfgAgDHm3bwy4YVTACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJDUqPtiOWD0ef1fb8b+v/ec9H2O9b8Zf/vn6zHjfRUxeeKEEkwWMevMqVExqTT3AtIQH8A72v/3nvj0T58e6TGGtHHF/JjzgexIjwEUQXwA72jWmVNj44r5J32ffUd6YuWjnbHqugvjnJqpJZjs37MBY4v4AN5RxaQJJX26cE7NVE8r4D3MC6cAQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJIqKj7a2tpi3rx5UVlZGTU1NbF06dLYu3fvkGvz+Xw0NTVFWVlZrF+/vhSzAgDjQFHxsW3btmhubo4dO3bE5s2bo7+/PxYvXhy9vb1vW7tq1aooKysr2aAAwPhQXsziTZs2Ddrv6OiImpqa2LVrVyxYsKBwvLOzM+6///7YuXNnTJ8+vTSTAgDjQlHx8Z+6u7sjIqK6urpw7LXXXosvfOEL0d7eHrW1te94j76+vujr6yvs53K5kxkJABjlhv3C6cDAQKxcuTIuvfTSmDNnTuH4bbfdFpdccklcddVV7+o+bW1tkc1mC1t9ff1wRwIAxoBhP/lobm6OPXv2xNNPP104tmHDhtiyZUv8+c9/ftf3aW1tjZaWlsJ+LpcTIAAwjg3rycfy5ctj48aNsXXr1pgxY0bh+JYtW2L//v1x+umnR3l5eZSX/7ttrr322mhsbBzyXplMJqqqqgZtAMD4VdSTj3w+HytWrIh169bFU089FTNnzhx0/s4774yvfvWrg45dcMEF8cADD8SSJUtOfloAYMwrKj6am5tj7dq18fjjj0dlZWUcOnQoIiKy2WxUVFREbW3tkC+ZNjQ0vC1UAID3pqI+dnnwwQeju7s7GhsbY/r06YXt0UcfPVXzAQDjTNEfuxRrONcAAOOX73YBAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFJFxUdbW1vMmzcvKisro6amJpYuXRp79+4tnH/llVdixYoVce6550ZFRUU0NDTErbfeGt3d3SUfHAAYm4qKj23btkVzc3Ps2LEjNm/eHP39/bF48eLo7e2NiIiDBw/GwYMH47777os9e/ZER0dHbNq0KW666aZTMjwAMPaUF7N406ZNg/Y7OjqipqYmdu3aFQsWLIg5c+bEY489Vjg/a9asuPfee+NLX/pSvPHGG1FeXtSPAwDGoZOqgbc+Tqmurj7hmqqqquOGR19fX/T19RX2c7ncyYwEAIxyw37hdGBgIFauXBmXXnppzJkzZ8g1//jHP+K73/1u3Hzzzce9T1tbW2Sz2cJWX18/3JEAgDFg2PHR3Nwce/bsiUceeWTI87lcLq644oqYPXt23H333ce9T2tra3R3dxe2AwcODHckAGAMGNbHLsuXL4+NGzfG9u3bY8aMGW87f/To0bj88sujsrIy1q1bFxMnTjzuvTKZTGQymeGMAQCMQUU9+cjn87F8+fJYt25dbNmyJWbOnPm2NblcLhYvXhyTJk2KDRs2xOTJk0s2LAAw9hX15KO5uTnWrl0bjz/+eFRWVsahQ4ciIiKbzUZFRUUhPF577bV4+OGHI5fLFV4gPfPMM2PChAml/zcAAMaUouLjwQcfjIiIxsbGQcfXrFkTN9xwQ+zevTueffbZiIg455xzBq3p6uqKs88+e/iTAgDjQlHxkc/nT3i+sbHxHdcAAO9tvtsFAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBIqqj4aGtri3nz5kVlZWXU1NTE0qVLY+/evYPWHDt2LJqbm+OMM86IqVOnxrXXXhuHDx8u6dAAwNhVVHxs27YtmpubY8eOHbF58+bo7++PxYsXR29vb2HNbbfdFk888UT86le/im3btsXBgwfjmmuuKfngAMDYVF7M4k2bNg3a7+joiJqamti1a1csWLAguru745e//GWsXbs2PvnJT0ZExJo1a+L888+PHTt2xMc//vHSTQ4AjElFxcd/6u7ujoiI6urqiIjYtWtX9Pf3x6JFiwprzjvvvGhoaIhnnnlmyPjo6+uLvr6+wn4ulzuZkYD/pusfvdHb98ZIj1Gw70jPoH+OJlMy5THz/VNGegx4Txh2fAwMDMTKlSvj0ksvjTlz5kRExKFDh2LSpElx+umnD1o7bdq0OHTo0JD3aWtri3vuuWe4YwDH0fWP3lh431MjPcaQVj7aOdIjDGnr/2wUIJDAsOOjubk59uzZE08//fRJDdDa2hotLS2F/VwuF/X19Sd1TyAKTzxWXXdhnFMzdYSn+bdj/W/G3/75esx4X0VMnjhhpMcp2HekJ1Y+2jmqnhLBeDas+Fi+fHls3Lgxtm/fHjNmzCgcr62tjX/961/x6quvDnr6cfjw4aitrR3yXplMJjKZzHDGAN6Fc2qmxpwPZEd6jIL/OnukJwBGWlF/2iWfz8fy5ctj3bp1sWXLlpg5c+ag8x/96Edj4sSJ8eSTTxaO7d27N1566aW4+OKLSzMxADCmFfXko7m5OdauXRuPP/54VFZWFt7jyGazUVFREdlsNm666aZoaWmJ6urqqKqqihUrVsTFF1/sT7oAABFRZHw8+OCDERHR2Ng46PiaNWvihhtuiIiIBx54IE477bS49tpro6+vLy677LL4+c9/XpJhAYCxr6j4yOfz77hm8uTJ0d7eHu3t7cMeCgAYv3y3CwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSKjo+tm/fHkuWLIm6urooKyuL9evXDzrf09MTy5cvjxkzZkRFRUXMnj07Vq9eXap5AYAxruj46O3tjblz50Z7e/uQ51taWmLTpk3x8MMPx3PPPRcrV66M5cuXx4YNG056WABg7Csv9oKmpqZoamo67vk//vGPsWzZsmhsbIyIiJtvvjl+8YtfxJ/+9Ke48sorhz0oADA+lPydj0suuSQ2bNgQL7/8cuTz+di6dWs8//zzsXjx4iHX9/X1RS6XG7QBAONXyePjpz/9acyePTtmzJgRkyZNissvvzza29tjwYIFQ65va2uLbDZb2Orr60s9EgAwipyS+NixY0ds2LAhdu3aFffff380NzfH73//+yHXt7a2Rnd3d2E7cOBAqUcCAEaRot/5OJHXX389vvGNb8S6deviiiuuiIiIj3zkI9HZ2Rn33XdfLFq06G3XZDKZyGQypRwDABjFSvrko7+/P/r7++O00wbfdsKECTEwMFDKHwUAjFFFP/no6emJffv2Ffa7urqis7Mzqquro6GhIT7xiU/E7bffHhUVFXHWWWfFtm3b4qGHHoof/ehHJR0cABibio6PnTt3xsKFCwv7LS0tERGxbNmy6OjoiEceeSRaW1vji1/8Yrzyyitx1llnxb333hu33HJL6aYGAMasouOjsbEx8vn8cc/X1tbGmjVrTmooAGD88t0uAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkFT5SA8AnDpl5bnoyu2N0yZPHelRRrWuXE+UledGegx4zxAfMI5NPP3Z+Maf/tdIjzEmTDz9f0TEp0Z6DHhPEB8wjvW/elHcf8UXYlaNJx8nsv9IT9z6v/eP9BjwniE+YBzLv1EVM6vOjdlnZEd6lFFt4Fh35N/4+0iPAe8ZXjgFAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApIqOj+3bt8eSJUuirq4uysrKYv369W9b89xzz8WVV14Z2Ww2pkyZEvPmzYuXXnqpFPMCAGNc0fHR29sbc+fOjfb29iHP79+/P+bPnx/nnXdePPXUU/GXv/wl7rrrrpg8efJJDwsAjH3lxV7Q1NQUTU1Nxz3/zW9+Mz71qU/FD3/4w8KxWbNmDW86AGDcKek7HwMDA/Gb3/wmPvShD8Vll10WNTU1cdFFFw350cxb+vr6IpfLDdoAgPGrpPFx5MiR6Onpie9///tx+eWXx+9+97u4+uqr45prrolt27YNeU1bW1tks9nCVl9fX8qRAIBRpuRPPiIirrrqqrjtttviwgsvjDvvvDM+/elPx+rVq4e8prW1Nbq7uwvbgQMHSjkSADDKFP3Ox4m8//3vj/Ly8pg9e/ag4+eff348/fTTQ16TyWQik8mUcgwAYBQr6ZOPSZMmxbx582Lv3r2Djj///PNx1llnlfJHAQBjVNFPPnp6emLfvn2F/a6urujs7Izq6upoaGiI22+/Pa677rpYsGBBLFy4MDZt2hRPPPFEPPXUU6WcGwAYo4qOj507d8bChQsL+y0tLRERsWzZsujo6Iirr746Vq9eHW1tbXHrrbfGueeeG4899ljMnz+/dFMDAGNW0fHR2NgY+Xz+hGtuvPHGuPHGG4c9FAAwfvluFwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuUjPQBwarze/2ZEROx5uXuEJ/n/jvW/GX/75+sx430VMXnihJEep2DfkZ6RHgHeU8QHjFP7/98v1Dt//X9GeJKxY0rG/xIhBf+lwTi1+MO1ERExq2ZqVIySpwz7jvTEykc7Y9V1F8Y5NVNHepxBpmTKY+b7p4z0GPCeID5gnKqeMik+97GGkR5jSOfUTI05H8iO9BjACPHCKQCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApIqOj+3bt8eSJUuirq4uysrKYv369cdde8stt0RZWVmsWrXqJEYEAMaTouOjt7c35s6dG+3t7Sdct27dutixY0fU1dUNezgAYPwpL/aCpqamaGpqOuGal19+OVasWBG//e1v44orrhj2cADA+FN0fLyTgYGBuP766+P222+PD3/4w++4vq+vL/r6+gr7uVyu1CMBAKNIyV84/cEPfhDl5eVx6623vqv1bW1tkc1mC1t9fX2pRwIARpGSxseuXbvixz/+cXR0dERZWdm7uqa1tTW6u7sL24EDB0o5EgAwypQ0Pv7whz/EkSNHoqGhIcrLy6O8vDxefPHF+NrXvhZnn332kNdkMpmoqqoatAEA41dJ3/m4/vrrY9GiRYOOXXbZZXH99dfHV77ylVL+KABgjCo6Pnp6emLfvn2F/a6urujs7Izq6upoaGiIM844Y9D6iRMnRm1tbZx77rknPy0AMOYVHR87d+6MhQsXFvZbWloiImLZsmXR0dFRssEAgPGp6PhobGyMfD7/rtf/9a9/LfZHAADjmO92AQCSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBSRcfH9u3bY8mSJVFXVxdlZWWxfv36wrn+/v6444474oILLogpU6ZEXV1dfPnLX46DBw+WcmYAYAwrOj56e3tj7ty50d7e/rZzr732WuzevTvuuuuu2L17d/z617+OvXv3xpVXXlmSYQGAsa+82AuampqiqalpyHPZbDY2b9486NjPfvaz+NjHPhYvvfRSNDQ0DG9KAGDcKDo+itXd3R1lZWVx+umnD3m+r68v+vr6Cvu5XO5UjwQAjKBT+sLpsWPH4o477ojPf/7zUVVVNeSatra2yGazha2+vv5UjgQAjLBTFh/9/f3x2c9+NvL5fDz44IPHXdfa2hrd3d2F7cCBA6dqJABgFDglH7u8FR4vvvhibNmy5bhPPSIiMplMZDKZUzEGADAKlTw+3gqPF154IbZu3RpnnHFGqX8EADCGFR0fPT09sW/fvsJ+V1dXdHZ2RnV1dUyfPj0+85nPxO7du2Pjxo3x5ptvxqFDhyIiorq6OiZNmlS6yQGAMano+Ni5c2csXLiwsN/S0hIREcuWLYu77747NmzYEBERF1544aDrtm7dGo2NjcOfFAAYF4qOj8bGxsjn88c9f6JzAAC+2wUASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEiq6PjYvn17LFmyJOrq6qKsrCzWr18/6Hw+n49vf/vbMX369KioqIhFixbFCy+8UKp5AYAxruj46O3tjblz50Z7e/uQ53/4wx/GT37yk1i9enU8++yzMWXKlLjsssvi2LFjJz0sADD2lRd7QVNTUzQ1NQ15Lp/Px6pVq+Jb3/pWXHXVVRER8dBDD8W0adNi/fr18bnPfe7kpgUAxryi4+NEurq64tChQ7Fo0aLCsWw2GxdddFE888wzQ8ZHX19f9PX1FfZzuVwpRwJK4PV/vRn7/95z0vfZd6Rn0D9LYdaZU6Ni0oSS3Q849UoaH4cOHYqIiGnTpg06Pm3atMK5/9TW1hb33HNPKccASmz/33vi0z99umT3W/loZ8nutXHF/JjzgWzJ7geceiWNj+FobW2NlpaWwn4ul4v6+voRnAj4T7POnBobV8w/6fsc638z/vbP12PG+ypi8sTSPK2YdebUktwHSKek8VFbWxsREYcPH47p06cXjh8+fDguvPDCIa/JZDKRyWRKOQZQYhWTJpTs6cJ/nV2S2wBjWEn/no+ZM2dGbW1tPPnkk4VjuVwunn322bj44otL+aMAgDGq6CcfPT09sW/fvsJ+V1dXdHZ2RnV1dTQ0NMTKlSvje9/7Xnzwgx+MmTNnxl133RV1dXWxdOnSUs4NAIxRRcfHzp07Y+HChYX9t97XWLZsWXR0dMTXv/716O3tjZtvvjleffXVmD9/fmzatCkmT55cuqkBgDGrLJ/P50d6iP8ul8tFNpuN7u7uqKqqGulxAIB3oZjf377bBQBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASKqk32pbCm/9hau5XG6EJwEA3q23fm+/m784fdTFx9GjRyMior6+foQnAQCKdfTo0chmsydcM+q+22VgYCAOHjwYlZWVUVZWNtLjACWUy+Wivr4+Dhw44LubYJzJ5/Nx9OjRqKuri9NOO/FbHaMuPoDxyxdHAhFeOAUAEhMfAEBS4gNIJpPJxHe+853IZDIjPQowgrzzAQAk5ckHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKT+LyDcr3e28I4lAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = s.plot.box()\n",
    "f = p.get_figure()\n",
    "f.savefig('../../media/CH10_F6_LERNER.jpg')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
